package es.ucm.is.www.GUI.client.admin;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;

import es.ucm.is.www.GUI.client.Constantes;
import es.ucm.is.www.GUI.client.city.CityGUI;
import es.ucm.is.www.GUI.client.panels.ErrorPanel;
import es.ucm.is.www.GUI.client.panels.PanelWaitingRight;
/**
 * <p>Title: PanelConfirmDeleteUser.java </p>
 *
 * <p>Description: Panel de confirmacion de borrar ciudad </p>
 *
 * <p>Copyright: </p>
 *
 * @author Angel Ruiz Alonso
 * @version 1.0
 * @see
 */ 
public class PanelConfirmDeleteUser extends Composite{
	HorizontalPanel hor;
    Button si;
    Button no;
    /**
     * @param hor: Panel sobre el que se carga esta seccion
     * @param si: boton si
     * @param no: boton no 
     **/
     /**
   	 * <p>Description: Constructora de la clase </p>
   	 * @param city: ciudad objetivo
   	 */
	public PanelConfirmDeleteUser(final String user){
		hor = new HorizontalPanel();
		hor.add(new HTML("&#191;Esta seguro que desea borrar el usuario: <b>"+user+"</b>?"));
		si = new Button("SI");
		no = new Button("NO");
		si.addClickListener(new ClickListener(){
			public void onClick(Widget sender) {
				AdminServiceAsync servicio = (AdminServiceAsync) GWT.create(AdminService.class);
				ServiceDefTarget endpoint2 = (ServiceDefTarget) servicio;
				endpoint2.setServiceEntryPoint(GWT.getModuleBaseURL() + "servletAdmin");
				final PanelWaitingRight p = new PanelWaitingRight("Borrando usuario");
				p.mostrar();
				AsyncCallback<Boolean> callback2 = new AsyncCallback<Boolean>(){

					public void onFailure(Throwable caught) {
						p.ocultar();
						ErrorPanel error = new ErrorPanel("Error conectando con el servidor...");
						error.show();
					}

					public void onSuccess(Boolean result) {
						p.ocultar();
						if(result){
							PopupPanel p = new PopupPanel(true);
							p.setWidget(new HTML("Usuario borrado"));
							p.center();
							p.show(); 
							Constantes.setLeft(new PanelLateralAdmJugadores());
							Constantes.setRight(new PanelInfoDelete(user));
						}
					}
				};
			servicio.deleteUser(user, callback2);
				
			}
			
		});
		no.addClickListener(new ClickListener(){

			public void onClick(Widget sender) {
				 Constantes.setLeft(new PanelLateralAdmJugadores());
				 Constantes.setRight(new DeleteStatePanel());
				
			}
			
		});
		hor.add(no);
		hor.add(si);
		initWidget(hor);
	}
}
